home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / LDAPMatchingRuleSchema.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  3.5 KB  |  157 lines

  1. package netscape.ldap;
  2.  
  3. import java.util.StringTokenizer;
  4. import java.util.Vector;
  5.  
  6. public class LDAPMatchingRuleSchema extends LDAPAttributeSchema {
  7.    private String[] attributes;
  8.  
  9.    public LDAPMatchingRuleSchema(String var1, String var2, String var3, String[] var4, int var5) {
  10.       super(var1, var2, var3, var5, true);
  11.       super.attrName = "matchingrules";
  12.       this.attributes = new String[var4.length];
  13.  
  14.       for(int var6 = 0; var6 < var4.length; ++var6) {
  15.          this.attributes[var6] = new String(var4[var6]);
  16.       }
  17.  
  18.    }
  19.  
  20.    public LDAPMatchingRuleSchema(String var1, String var2) {
  21.       super.attrName = "matchingrules";
  22.       super.oid = this.processRule(var1);
  23.       String var3 = this.processRule(var2);
  24.       if (var3 != null && super.oid != null && !var3.equals(super.oid)) {
  25.          System.err.println("Rule oid " + super.oid + " differs from use oid " + var3);
  26.       }
  27.  
  28.       if (super.oid == null) {
  29.          super.oid = var3;
  30.       }
  31.  
  32.    }
  33.  
  34.    private String processRule(String var1) {
  35.       if (var1 == null) {
  36.          return null;
  37.       } else {
  38.          var1.trim();
  39.          int var2 = var1.length();
  40.          var1 = var1.substring(2, var2 - 1);
  41.          var2 = var1.length();
  42.          int var3 = var1.indexOf(32);
  43.          String var4 = var1.substring(0, var3);
  44.          char[] var5 = new char[var2];
  45.          var1 = var1.substring(var3 + 1, var2);
  46.          var2 = var1.length();
  47.          var1.getChars(0, var2, var5, 0);
  48.          var3 = 0;
  49.          var2 = var5.length;
  50.  
  51.          while(var3 < var2) {
  52.             String var6;
  53.             for(var6 = ""; var5[var3] == ' '; ++var3) {
  54.             }
  55.  
  56.             int var8;
  57.             for(var8 = var3 + 1; var8 < var2 && var5[var8] != ' '; ++var8) {
  58.             }
  59.  
  60.             if (var3 < var2 && var8 < var2) {
  61.                var6 = new String(var5, var3, var8 - var3);
  62.                var3 = var8;
  63.             } else {
  64.                var3 = var2;
  65.             }
  66.  
  67.             while(var3 < var2 && var5[var3] != '\'' && var5[var3] != '(') {
  68.                ++var3;
  69.             }
  70.  
  71.             for(var8 = var3 + 1; var8 < var2 && var5[var8] != '\'' && var5[var8] != ')'; ++var8) {
  72.             }
  73.  
  74.             if (var3 < var8 && var8 < var2) {
  75.                String var7 = new String(var5, var3 + 1, var8 - var3 - 1);
  76.                var3 = var8 + 1;
  77.                if (var6.equalsIgnoreCase("NAME")) {
  78.                   super.name = var7;
  79.                } else if (var6.equalsIgnoreCase("DESC")) {
  80.                   super.description = var7;
  81.                } else if (var6.equalsIgnoreCase("SYNTAX")) {
  82.                   super.syntax = ((LDAPAttributeSchema)this).syntaxCheck(var7);
  83.                } else if (var6.equalsIgnoreCase("APPLIES")) {
  84.                   Vector var9 = new Vector();
  85.                   StringTokenizer var10 = new StringTokenizer(var7, " ");
  86.  
  87.                   while(var10.hasMoreTokens()) {
  88.                      String var11 = var10.nextToken();
  89.                      if (!var11.equals("$")) {
  90.                         var9.addElement(var11);
  91.                      }
  92.                   }
  93.  
  94.                   this.attributes = new String[var9.size()];
  95.                   var9.copyInto(this.attributes);
  96.                   var9.removeAllElements();
  97.                   Object var19 = null;
  98.                }
  99.             }
  100.          }
  101.  
  102.          return var4;
  103.       }
  104.    }
  105.  
  106.    public String[] getAttributes() {
  107.       return this.attributes;
  108.    }
  109.  
  110.    public String getValue() {
  111.       String var1 = "( " + super.oid + " NAME '" + super.name + "' DESC '" + super.description + "' SYNTAX '";
  112.       var1 = var1 + ((LDAPAttributeSchema)this).internalSyntaxToString();
  113.       var1 = var1 + "' )";
  114.       return var1;
  115.    }
  116.  
  117.    public String getUseValue() {
  118.       String var1 = "( " + super.oid;
  119.       var1 = var1 + " APPLIES ( ";
  120.  
  121.       for(int var2 = 0; var2 < this.attributes.length; ++var2) {
  122.          if (var2 > 0) {
  123.             var1 = var1 + " $ ";
  124.          }
  125.  
  126.          var1 = var1 + this.attributes[var2];
  127.       }
  128.  
  129.       var1 = var1 + ") )";
  130.       return var1;
  131.    }
  132.  
  133.    protected void update(LDAPConnection var1, int var2, String var3) throws LDAPException {
  134.       LDAPAttribute[] var4 = new LDAPAttribute[]{new LDAPAttribute("matchingRules", this.getValue()), new LDAPAttribute("matchingRuleUse", this.getUseValue())};
  135.       ((LDAPSchemaElement)this).update(var1, var2, var4);
  136.    }
  137.  
  138.    public String toString() {
  139.       String var1 = "Name: " + super.name + "; OID: " + super.oid + "; Type: ";
  140.       var1 = var1 + ((LDAPAttributeSchema)this).syntaxToString();
  141.       var1 = var1 + "; Description: " + super.description;
  142.       if (this.attributes != null) {
  143.          var1 = var1 + "; Applies to: ";
  144.  
  145.          for(int var2 = 0; var2 < this.attributes.length; ++var2) {
  146.             if (var2 > 0) {
  147.                var1 = var1 + ", ";
  148.             }
  149.  
  150.             var1 = var1 + this.attributes[var2];
  151.          }
  152.       }
  153.  
  154.       return var1;
  155.    }
  156. }
  157.